package com.boss.salary.dao;


import com.boss.framework.dto.PaginationDTO;
import com.boss.salary.entity.AgencyPersonRestrict;
import com.boss.sys.ca.user.dto.UserDTO;

import java.util.List;
import java.util.Map;

public interface IAgencyPersonRestrictDao {

    /**
     * 新增
     * @param agencyPersonRestrict
     */
    void insertAgencyPersonRestrict(AgencyPersonRestrict agencyPersonRestrict);

    /**
     * 根据id删除
     * @param id
     */
    void deleteAgencyPersonRestrict(String id ,String mofDivCode);

    /**
     * 修改
     * @param agencyPersonRestrict
     */
    void  updateAgencyPersonRestrict(AgencyPersonRestrict agencyPersonRestrict);

    /**
     * 分页查询
     * @param paginationDTO
     * @return
     */

    List<Map<String,Object>> queryAgencyPersonRestrictPage(PaginationDTO paginationDTO,String mofDivCode,List<String> childrenId,String state);

    /**
     * 获取数据总数
     * @return
     */
    int queryAgencyPersonRestrict(String mofDivCode,List<String> childrenId,String state);

    /**
     * 根据单位id修改
     * @param agencyPersonRestrictList
     */
    void updateAgencyPersonRestricts(List<AgencyPersonRestrict> agencyPersonRestrictList);

    /**
     * 根据单位id插入
     * @param agencyPersonRestrictList
     */
    void insertAgencyPersonRestricts(List<AgencyPersonRestrict> agencyPersonRestrictList);

    /**
     * 根据agencyid 查这个单位下的所有人数以及状态
     * @param userDTO
     * @param agencyId
     * @return
     */

    List<AgencyPersonRestrict> queryAgencyIdList(String agencyId,UserDTO userDTO);

    /**
     *
     * 根据区划 查询工资类型
     * @param
     * @param province
     * @return
     */

    List<AgencyPersonRestrict> agencyType(String province);

    /**
     * 根据机构id查询当前单位
     * @param userDTO
     * @param agencyId
     * @return
     */

    List<AgencyPersonRestrict> currentUnitList(String agencyId,UserDTO userDTO);

    /**
     * 通过code 获取工资类型信息
     * 工资类型
     * @param userDTO
     * @return
     */

    List<AgencyPersonRestrict> selectWageType(UserDTO userDTO);

    /**
     * 查询人员编制数表中人员限制数
     * @param agencyId
     * @param payCode
     * @return
     */

    Integer queryCurrentNumber(String agencyId, String payCode);
}
